Selecting Operating Systems Based on a Computing Device Mode

ABSTRACT

A computing device in accordance with an example includes a first operating system and a second operating system. The computing device includes a controller to select one of the first and second operating systems based on a mode of the computing device, where the first and second operating systems are executed substantially in parallel on a processor of the computing device.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 14/911,279, having anational entry date of Feb. 10, 2016, which is a national stageapplication under 35 U.S.C. §371 of PCT/US2013/062727, filed Sep. 30,2013, which are both hereby incorporated by reference in their entirety.

BACKGROUND

A notebook is a portable personal computer with a clamshell form factorsuitable for mobile or stationary use. A notebook may have a displaymember and a base member that includes a keyboard. A tablet computer isa one-piece mobile computer. A tablet may have a touchscreen to enableinteraction with a finger or stylus. Due to its lack of a physical inputdevice, such as a physical keyboard, a tablet may be well suited forcontent consumption. Conversely, a notebook may be better suited forcontent creating due to the inclusion of physical input devices.

BRIEF DESCRIPTION OF THE DRAWINGS

Some examples of the present application are described with respect tothe following figures:

FIG. 1 illustrates an example of a computing device including first andsecond operating systems and a controller to select an operatingsystems;

FIG. 2 illustrates another example of a computing device including firstand second operating systems and a controller to select an operatingsystem based on a mode of the computing device;

FIG. 3 is an example flowchart illustrating a method for selectingbetween first and second operating systems based on a mode of acomputing device;

FIG. 4 is another example of a flowchart illustrating a method forselecting between first and second operating systems based on a mode ofa computing device; and

FIG. 5 illustrates an example of a controller including acomputer-readable medium having instructions to select between first andsecond operating systems based on a mode of the computing device.

DETAILED DESCRIPTION

Hybrid devices that can convert between a tablet mode and a notebookmode are becoming increasingly popular. In the notebook mode, at least atouch sensitive pointing device or physical keyboard can be accessibleto the user. In the tablet mode, one or more of these input devices(i.e., touch sensitive pointing device or physical keyboard) arerendered inaccessible by the user to render the device more suitable forother purposes.

Certain operating systems function better with a particular form factor(or mode) and present a better ease of use for a user. For example, someoperating systems are better suited for the tablet mode and are betterdesigned for touch input, and some other operating systems are bettersuited for the notebook mode and are better designed for the traditionalkeyboard and mouse input. It would be beneficial to a user of a hybridcomputing device to have multiple operating systems that executes on thesame processor and seamlessly transition from one operating system tothe other depending on whether the computing device is in the tabletmode or the notebook mode. Further, the multiple operating systems canshare the resources of the computing device (e.g., CPU, memory, I/O,power supply, etc.). Thus, applications from both operating system canexecute concurrently on a graphical user interface (GUI) of a selected(i.e., selected based on the current form factor of the device)operating system. Such a device would improve user experience, andreduce the cost and complexity of running multiple operating systemssince the operating systems will use the same hardware architecture. Forexample, the multiple operating systems can execute on the singlearchitecture by using hardware and/or software virtualization oremulation. It should be noted that in some examples, the multipleoperating systems may be loaded to the processor (i.e., the sameprocessor) from a memory of the computing device. For example, a firstoperating system and a second operating system may be stored onnon-volatile memory of the computing device and loaded from thenon-volatile to the system memory where they are executed by theprocessor.

In certain examples, the hardware architecture may be based on reducedinstruction set computing (RISC) and/or complex instruction setcomputing (CISC). Accordingly, the processor may be optimized for RISCand/or CISC, for example. Some example operating systems commonlyavailable include Android®, Berkeley Software Distribution (BSD) orBerkeley Unix®, iOS®, Linux®, Microsoft Windows®.

In one example, a hybrid computing device includes a first operatingsystem and a second operating system. The device also includes acommunication channel to exchange data between the first and secondoperating systems, and a controller to select one of the first andsecond operating systems based on a mode of the computing device, wherethe first and second operating systems execute substantially in parallelon a processor of the computing device.

In another example, a method for selecting operating systems includesselecting one of a first operating system and a second operating systemas a control operating system executing on a processor of a computingdevice based on a mode of the computing device. The method includesselecting another of the first and second operating system as abackground operating system executing substantially in parallel on theprocessor. The method includes establishing a communication channelbetween the control operating system and the background operatingsystem, the communication channel to exchange data between the controloperating system and the background operating system. The method alsoincludes executing at least one application of the background operatingsystem on a graphical user interface (GUI) of the control operatingsystem while executing applications of the control operating system onthe GUI.

In another example, a non-transitory computer-readable storage mediumincludes instructions that if executed cause a controller of a computingdevice to select one of a first operating system and a second operatingsystem as a control operating system executing on a processor of thecomputing device based on whether the computing device is in a tabletmode or a notebook mode. The instructions cause the controller to selectanother of the first and second operating systems as a backgroundoperating system executing substantially concurrently on the processorbased on whether the computing device is in the tablet mode or thenotebook mode. The instructions cause the controller to communicate databetween the control operating system and the background operatingsystem, and to launch and execute at least one application of thebackground operating system on a graphical user interface (GUI) of thecontrol operating system substantially concurrently with execution ofapplications of the control operating system on the GUI.

Referring now to the figures, FIG. 1 is an example of a computing deviceincluding first and second operating systems and a controller to selectthe operating systems. Computing device 100 can be a hybrid portablecomputing device that can operate in a tablet mode or a notebook mode.Accordingly, computing device 100 can include a base member (not shown)and a display member (not shown) that may be detached. The displaymember may be a metal, plastic, fiber resin, or another material. Thedisplay member may enclose a display such as an LCD (liquid crystaldisplay), OLED (organic light emitting display), or another type ofdisplay. The display may be a touch screen display that can recognize auser interacting with the display, for example via touching the display.The base member may be metal, plastic, fiber, resin, or anothermaterial. The base member may include input devices such as a keyboard,a touch sensitive pointing device, or other input devices. In someexamples, the base member is a docking station for docking the tabletand may include input devices and/or ports. In the tablet mode, thedisplay member is detached from the base member. In the notebook mode,the display member is attached to the base member. In some examples, thedisplay member may include components of the computing device 100 suchas processor 120, controller 130, memory, mass storage, printed circuitboard, battery, or other components.

Processor 120 can be hardware and/or software that includes a firstoperating system 122 and a second operating system 124. First operatingsystem 122 and second operating system 124 may load and executeapplications. In some examples, processor 120 includes a memory, wherethe first operating system 122 and second operating system 124 arestored. For example, the first operating system 122 and the secondoperating system 124 may be loaded to the processor 120 from a memory ofthe computing device (or of the processor 120). The memory may be anon-volatile memory, and the first and second operating systems 122 and124 may be loaded from the non-volatile memory to the processor 120where they are executed. Thus, the memory can be internal to or externalto the processor 120. Processor 120 can be a single core processor, amulti-core processor, or any other type of processor.

The first operating system 122 and the second operating system 124 canestablish a communication channel 126 to communicate and exchange data.In some examples, the communication channel 126 is a driver or remotedesktop software for example. In certain examples, the processor 120facilitates communication between the first operating system 122 and thesecond operating system 124 based on the driver or software beingexecuted by the operating systems. In some examples, communicationchannel 126 may emulate hardware connections (i.e., USB, HDMI, Ethernet,etc) in order to pass input/output between the first operating system122 and the second operating system 124. In other examples, thecommunication channel 126 may emulate an Internet protocol such that oneoperating system hosts a server and the other operating system is aclient, and data is passed back and forth (e.g., similar to a remotedesktop software).

Controller 130 is any general purpose for selecting one of firstoperating system 122 and second operating system 124 based on the modeof the computing device 100. Controller 130 can be, for example, aprocessor, a semiconductor-based microprocessor, an integrated circuit(IC), or any other device suitable for selecting an operating systembased on the mode 132 of the computing device 100.

In response to detecting a mode 132 of the computing device 100,controller 130 selects one of the first operating system 122 and thesecond operating system 124 as a control operating system of thecomputing device 100. For example, if the device 100 is in the tabletmode (e.g., by detaching the display member from the base member),controller 130 may load and execute either the first operating system122 or the second operating system 122 as the control operating system.Accordingly, the other of the first operating system 122 and secondoperating system 124 is a background operating system executingsubstantially in parallel (e.g., simultaneously or concurrently) on theprocessor 120.

The control operating system controls input and output of the computingdevice 100. For example, the control operating system may control thedisplay member of the computing device and accept input from the userand generate output for the user via a graphical user interface.Although the control operating system is in control of the computingdevice 100 in a current form factor/mode, applications of the backgroundoperating system can be launched and executed on the control operatingsystem in parallel (or simultaneously/concurrently) with applications ofthe control operating system, because the control operating system andbackground operating system can communicate and exchange data via thecommunication channel 126. For example, one or more applications of thebackground operating system can be launched on a GUI of the controloperating system, whereby the user can interact with the application(i.e., provide input and receive output). Thus, the background operatingsystem is able to generate input/output events on the control operatingsystem.

For example, if a user input is received for a background application onthe GUI of the control application, the user input is passed to thebackground operating system via the communication channel 126. Becausethe background operating system is still executing on the processor(i.e., hardware architecture), the background operating system cangenerate an output in response to the user input. The generated outputis passed from the background operating system to the control operatingsystem via the communication channel 126, and the output is displayed tothe user on the GUI. Thus, to the user, it would seem like the controloperating system was executing the applications from the backgroundoperating system.

If the mode 132 of the device 100 is changed, the controller seamlesslyswitches from one operating system to the other, changing the operatingsystem that becomes the control operating system and the backgroundoperating system. In some examples, the user may be provided with theoption of selecting which operating system to select for a particularmode.

FIG. 2 is another example of a computing device including first andsecond operating systems and a controller to select an operating systembased on a mode of the computing device. In the example of FIG. 2,computing device 100 includes processor 120, controller 130, sharedcomputing resources 150, and sensor 260.

Processor 120 includes control operating system 222 and backgroundoperating system 224. Control operating system 222 can be one of firstoperating system 122 and second operating system 124 of FIG. 1, andbackground operating system 224 can be the other of the first operatingsystem 122 and second operating system 124. Control operating system 222and background operating system 224 are selected based on a current mode(i.e., tablet mode or notebook mode) of the device 100. Further, controloperating system 222 and background operating system 224 communicatedata (e.g., commands, messages, input, output, content, etc) viacommunication channel 126.

Sensor 260 can be, for example, an activation sensor, an electricalsensor, a mechanical sensor, or another type of sensor that can detectwhen the display member is separated from the base member or attached tothe base member (i.e., in a tablet mode or a notebook mode). Forexample, the sensor 260 can detect when a release (e.g., a button, aslide switch, or another type of release) is activated to separate thedisplay member from the base member. The sensor 260 can send anindication of the mode 262 to the controller. Based on the mode 262 ofthe device 100, controller 130 selects which of the first and secondoperating systems is the control operating system 222 and which other ofthe first and second operating systems is the background operatingsystem 224.

Control operating system 222 can operate one or more GUIs 240. GUI 240allows users to interact with the device 100 through graphical icons andvisual indicators, for example. Control operating system 222 can launchand execute applications 242 designed for or associated with the controloperating system 222 (i.e., one of first and second operating systems)and applications 244 designed or associated with the backgroundoperating system 224 (i.e., the other of first and second operatingsystems), and allow the user interact with the applications via the GUI240. GUI 240 is present to the user on a display device of the displaymember.

When the background operating system application 244 is launched on theGUI 240, the user may provide input and receive input over the GUI 240.The input is forwarded to the background operating system 224 via thecommunication channel 126, and corresponding output is passed from thebackground operating system 224 to the control operating system 222 viathe communication channel 125 for display on the GUI 240.

Further, control operating system 222 and background operating system224 share computing resources 250. Computing resources 250 may include,for example, a mass storage device (e.g., HDD, SDD, etc), input/outputcontroller, memory, file storage system, etc. In some examples, thecontrol operating system 222 and the background operating system 224 canaccess the same file using a different path. To illustrate, if thebackground operating system 224 stores personal files (e.g., photos,documents, etc.) in a different location than the control operatingsystem 222, the file locations can be mapped such that the personalfiles stored by the background operating system 224 can be seen on thecontrol operating system's personal file library.

FIG. 3 is an example flowchart illustrating a method for selectingbetween first and second operating systems based on a mode of acomputing device. Method 300 may be implemented, for example, in theform of executable instructions stored on a non-transitorycomputer-readable storage medium and/or in the form of electroniccircuitry.

Method 300 includes selecting one of a first operating system and asecond operating system as a control operating system executing on aprocessor of a computing device based on a mode of the computing device,at 310. For example, controller 130 can select either one of the firstoperating system 122 and the second operating system 124 as the controloperating system 222 based on whether the device 100 is in a tablet modeor a notebook mode.

Method 300 includes selecting another of the first operating system andthe second operating system as a background operating system executingsubstantially in parallel on the processor, at 320. For example,controller 130 can select either one of the first operating system 122and the second operating system 124 as the background operating system225 based on the mode 262 (tablet or notebook) of the device 100.

Method 300 includes establishing a communication channel between thecontrol operating system and the background operating system, thecommunication channel to exchange data between the control operatingsystem and the background operating system, at 330. For example, controloperating system 222 and background operating system 224 can exchangeuser input, output, commands, messages, and other data via communicationchannel 126.

Method 300 includes executing at least one application of the backgroundoperating system on a graphical user interface (GUI) of the controloperating system while executing applications of the control operatingsystem, using the communication channel, at 340. For example, backgroundoperating system applications 244 can be loaded, launched and executedon the GUI 240 of the control operating system, whereby userinput/output are exchanged via the communication channel. In someexamples, the method 300 of FIG. 3 includes additional steps in additionto and/or in lieu of those depicted in FIG. 3.

FIG. 4 is another example of a flowchart illustrating a method forselecting between first and second operating systems based on a mode ofa computing device. Method 400 may be implemented, for example, in theform of executable instructions stored on a non-transitorycomputer-readable storage medium and/or in the form of electroniccircuitry.

Method 400 includes detecting a change in mode of a computing device,where the mode includes at least one of a tablet mode and a notebookmode, at 410. For example, sensor 260 can determine when the device 100is one of a tablet mode and a notebook mode and notify the controller130.

Method 400 includes selecting one of a first operating system and asecond operating system as a control operating system, and selectinganother of the first operating system and second operating system as abackground operating system executing substantially in parallel on aprocessor of the computing device, at 420.

Method 400 includes executing at least one application of the backgroundoperating system on a graphical user interface (GUI) of the controloperating system while executing applications of the control operatingsystem on the GUI, at 430.

Method 400 includes receiving input related to the at least oneapplication of the background operating system on the GUI of the controloperating system, at 440. Method 400 includes sending the input to thebackground operating system via a communication channel establishedbetween the control operating system and the background operatingsystem, at 450. Method 400 includes receiving an output from thebackground operating system in response to the input via thecommunication channel, at 460. Method 400 also includes displaying theoutput on the GUI.

For example, the user can interact with the application of thebackground operating system 224 via the GUI 240. Input can be passedfrom the GUI 240 to the background operating system 224 via thecommunication channel 126, and output can be passed from the backgroundoperating system 224 to the GUI 240 via the communication channel 126.In some examples, the method 400 of FIG. 4 includes additional steps inaddition to and/or in lieu of those depicted in FIG. 4.

FIG. 5 illustrates an example of a controller including acomputer-readable medium having instructions to select between first andsecond operating systems based on a mode of the computing device.Controller 130 can include a non-transitory computer-readable medium520. The non-transitory computer-readable medium 520 can includeinstructions 521-524 that if executed by a processor 510 can cause thecontroller 130 to perform the functionality described below.

For example, control operating system selecting instructions 521 areexecutable to select one of a first operating system and a secondoperating system as a control operating system executing on a processorof the computing device based on whether the computing device is in atablet mode or a notebook mode. Background operating system selectinginstructions 522 are executable to select another of the first operatingsystem and the second operating system as a background operating systemexecuting substantially in parallel on the processor, based on whetherthe computing device is in the tablet mode or the notebook mode. Datacommunicating instructions 523 are executable to communicate databetween the control operating system and the background operatingsystem. Application executing instructions 524 are executable to launchand execute at least one application of the background operating systemon a graphical user interface (GUI) of the control operating system inparallel with execution of application of the control operating systemon the GUI.

The techniques described above may be embodied in a computer-readablemedium for configuring a computing system to execute the method. Thecomputer-readable media may include, for example and without limitation,any number of the following non-transitive mediums: magnetic storagemedia including disk and tape storage media; optical storage media suchas compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video diskstorage media; holographic memory; nonvolatile memory storage mediaincluding semiconductor-based memory units such as FLASH memory, EEPROM,EPROM, ROM; ferromagnetic digital memories; volatile storage mediaincluding registers, buffers or caches, main memory, RAM, etc.; and theInternet, just to name a few. Other new and obvious types ofcomputer-readable media may be used to store the software modulesdiscussed herein. Computing systems may be found in many forms includingbut not limited to mainframes, minicomputers, servers, workstations,personal computers, notepads, personal digital assistants, tablets,smartphones, various wireless devices and embedded systems, just to namea few.

In the foregoing description, numerous details are set forth to providean understanding of the present disclosure. However, it will beunderstood by those skilled in the art that the present disclosure maybe practiced without these details. While the present disclosure hasbeen disclosed with respect to a limited number of examples, thoseskilled in the art will appreciate numerous modifications and variationstherefrom. It is intended that the appended claims cover suchmodifications and variations as fall within the true spirit and scope ofthe present disclosure.

What is claimed is:
 1. A hybrid computing device comprising: aprocessor; a first operating system; a second operating system; and acontroller to select, based on a mode of the computing device, the firstoperating system as a control operating system, and the second operatingsystem as a background operating system, wherein the control andbackground operating systems are executable in parallel on theprocessor, the control operating system to receive a user input at aninput device of the hybrid computing device, and to pass the user inputto the background operating system over a communication channel betweenthe first and second operating systems.
 2. The hybrid computing deviceof claim 1, wherein the control operating system is to control input andoutput operations of the hybrid computing device in a first mode.
 3. Thehybrid computing device of claim 2, wherein the control operating systemis to execute applications of the background operating system onmultiple graphical user interfaces (GUIs) of the control operatingsystem substantially in parallel with applications of the controloperating system.
 4. The hybrid computing device of claim 3, wherein thecontrol operating system is to receive data from the backgroundoperating system via the communication channel, wherein the user inputand the data are related to the applications of the background operatingsystem.
 5. The hybrid computing device of claim 1, wherein the firstoperating system and the second operating system share computingresources of the hybrid computing device, wherein the computingresources include a memory, a file storage, an input/output controller,and a central processing unit (CPU).
 6. The hybrid computing device ofclaim 1, wherein the mode includes at least one of a tablet computermode or a notebook computer mode.
 7. The hybrid computing device ofclaim 6, further comprising a sensor to detect that the hybrid computingdevice has switched from the tablet computer mode to the notebookcomputer mode, the controller to switch, in response to detecting thatthe hybrid computing device has switched from the tablet computer modeto the notebook computer mode, the first operating system to be thebackground operating system, and the second operating system to be thecontrol operating system.
 8. The hybrid computing device of claim 7,wherein the sensor comprises an activation sensor, and wherein theactivation sensor comprises at least one of an electrical sensor or amechanical sensor.
 9. The hybrid computing device of claim 1, whereinthe control operating system is to receive, at a graphical userinterface (GUI) of the control operating system, the user input for thebackground operating system.
 10. The hybrid computing device of claim 9,wherein the background operating system is to generate an outputresponsive to the user input, and to pass the output to the GUI of thecontrol operating system.
 11. The hybrid computing device of claim 1,wherein the mode is a tablet computer mode, the user input at the inputdevice comprises a touch input made on a touchscreen, the controloperating system is to receive the touch input on the touchscreen andpass the touch input on the touchscreen to the background operatingsystem, and the background operating system is to respond to the touchinput by sending responsive data to the control operating system, thecontrol operating system to output the responsive data on a graphicaluser interface of the control operating system.
 12. A method comprising:selecting, in response to detecting a first mode of operation of acomputing device, a first operating system as a control operating systemexecuting on a processor of the computing device; selecting, in responseto detecting the first mode of operation of the computing device, asecond operating system as a background operating system executingsubstantially in parallel on the processor with the control operatingsystem; and establishing a communication channel between the controloperating system and the background operating system, the communicationchannel to exchange data between the control operating system and thebackground operating system; receiving, by the control operating system,a user input at an input device of the computing device, and passing, bythe control operating system, the user input to the background operatingsystem over the communication channel; and executing an application ofthe background operating system on a graphical user interface (GUI) ofthe control operating system while executing applications of the controloperating system on the GUI.
 13. The method of claim 12, wherein thecontrol operating system controls the input device and a display memberof the computing device, the received user input relates to theapplication of the background operating system on the GUI of the controloperating system, and the GUI is displayed on the display member, themethod further comprising: receiving, via the communication channel, anoutput from the background operating system in response to the userinput; and displaying the output on the GUI.
 14. The method of claim 12,wherein the first and second operating systems share resources of thecomputing device, wherein the resources include a file storage, amemory, processing resources, and input/output controllers.
 15. Themethod of claim 12, further comprising: selecting, in response todetecting a second mode of operation of the computing device, the firstoperating system as the background operating system; and selecting, inresponse to detecting the second mode of operation of the computingdevice, the second operating system as the control operating system. 16.The method of claim 12, wherein the control operating system controlsthe input device and a display member of the computing device, the firstmode of operation is a tablet computer mode, the user input at the inputdevice comprises a touch input made on a touchscreen, the controloperating system receives the touch input on the touchscreen and passesthe touch input on the touchscreen to the background operating system,and the background operating system responds to the touch input bysending responsive data to the control operating system, the controloperating system outputting the responsive data in the GUI on thedisplay member.
 17. A non-transitory computer-readable storage mediumcomprising instructions that if executed cause a controller of acomputing device to: select, in response to detecting a first mode ofoperation of a computing device, a first operating system as a controloperating system executing on a processor of the computing device;select, in response to detecting the first mode of operation of thecomputing device, a second operating system as a background operatingsystem executing substantially concurrently on the processor with thecontrol operating system; communicate data between the control operatingsystem and the background operating system; receive, by the controloperating system, a user input at an input device of the computingdevice, and pass, by the control operating system, the user input to thebackground operating system; and launch and execute an application ofthe background operating system on a graphical user interface (GUI) ofthe control operating system substantially concurrently with executionof applications of the control operating system on the GUI.
 18. Thenon-transitory computer-readable medium of claim 17, wherein theinstructions if executed cause the controller to: select, in response todetecting a second mode of operation of the computing device, the firstoperating system as the background operating system; and select, inresponse to detecting the second mode of operation of the computingdevice, the second operating system as the control operating system. 19.The non-transitory computer-readable storage medium of claim 17, whereinthe first mode of operation is a tablet computer mode, the user input atthe input device comprises a touch input made on a touchscreen, thecontrol operating system receives the touch input on the touchscreen andpasses the touch input on the touchscreen to the background operatingsystem, and the background operating system responds to the touch inputby sending responsive data to the control operating system, the controloperating system outputting the responsive data on GUI.